// 声明showCode函数
function showCode() {
  // 声明变量str初始化值为空字符串
  let str = ''
  // 循环执行5次，拼接字符串str
  for (let i = 0; i < 5; i++) {
    str += '欢迎学习js函数！<br />'
  }
  // 找到元素class='msg'的元素
  let msgBox = document.getElementsByClassName('msg')[0]
  // 写入str字符串内容到msgBox中
  msgBox.innerHTML = str
}

// a和b的加法
function add(a, b) {
  // 参数验证
  let type = typeof a
  if (type !== 'number') {
    return console.log('第1个参数必须是数字')
  }
  type = typeof b
  if (type !== 'number') {
    return console.log('第2个参数必须是数字')
  }
  return a + b
}

function sub(a, b) {
  // 测试变量的具体数据类型
  let type = Object.prototype.toString.call(a).slice(8, -1)
  if (type !== 'Number') {
    return console.log('第1个参数必须是数字')
  }
  type = Object.prototype.toString.call(b).slice(8, -1)
  if (type !== 'Number') {
    return console.log('第2个参数必须是数字')
  }
  return a - b
}

function mul(a, b) {
  // 测试变量的具体数据类型
  let type = Object.prototype.toString.call(a).slice(8, -1)
  if (type !== 'Number') {
    return console.log('第1个参数必须是数字')
  }
  type = Object.prototype.toString.call(b).slice(8, -1)
  if (type !== 'Number') {
    return console.log('第2个参数必须是数字')
  }
  return a * b
}

/**
 * 计算a和b的除法 文档注释
 * @param {number} a 第一个操作数
 * @param {number} b 第二个操作数
 * @returns {number} a和b商
 */
function div(a, b) {
  // 测试变量的具体数据类型
  let type = Object.prototype.toString.call(a).slice(8, -1)
  if (type !== 'Number') {
    return console.log('第1个参数必须是数字')
  }
  type = Object.prototype.toString.call(b).slice(8, -1)
  if (type !== 'Number') {
    return console.log('第2个参数必须是数字')
  }
  return a / b
}

/**
 * Description
 * @returns {any}
 */
function calculator() {
  let num1 = prompt('输入第1个数')
  num1 = parseFloat(num1)
  if (isNaN(num1)) {
    return console.log('第1个参数必须是数字')
  }
  let num2 = prompt('输入第2个数')
  num2 = parseFloat(num2)
  if (isNaN(num2)) {
    return console.log('第2个参数必须是数字')
  }
  let opt = prompt('输入操作符:')
  console.log(opt)
  // 判断opt是否合法
  if (opt !== '+' && opt !== '-' && opt !== '*' && opt !== '/') {
    return console.log('操作符只能是+-*/')
  }
  let rt = null
  switch (opt) {
    case '+': {
      rt = add(num1, num2)
      break
    }
    case '-': {
      rt = sub(num1, num2)
      break
    }
    case '*': {
      rt = mul(num1, num2)
      break
    }
    case '/': {
      rt = div(num1, num2)
      break
    }
  }
  let numEl = document.getElementsByClassName('num')[0]
  console.log('rt=' + rt)
  numEl.innerHTML = 'rt=' + rt.toFixed(2)
}

function insertName() {
  let name = prompt('输入名称')
  // name是空，不能添加
  if (name === '' || name.trim() === '') {
    // trim() 首尾去空格
    // if(!name){}
    return console.log('名称不能空')
  }
  document.getElementsByClassName('username')[0].innerHTML = name
  alert('添加成功')
}

function showName() {
  let x = document.getElementsByClassName('username')[0]
  x.style.display = 'block'
}
